function valida_nome(id){
    var nome = document.getElementById(id).value;
    
    if(nome.length == 0){
        return true;
    }
    
    for(i = 0; i < nome.length; i++){
        if(nome.charCodeAt(i) >= 65 && nome.charCodeAt(i) <= 90 || nome.charCodeAt(i) >= 97 && nome.charCodeAt(i) <= 122 || nome.substr(i,1) == ' ' || 
            nome.substr(i,1) == 'á' || nome.substr(i,1) == 'Á' || nome.substr(i,1) == 'é' || nome.substr(i,1) == 'É' || nome.substr(i,1) == 'í' || nome.substr(i,1) == 'Í' || nome.substr(i,1) == 'ó' || nome.substr(i,1) == 'Ó' || nome.substr(i,1) == 'ú' || nome.substr(i,1) == 'Ú' || 
            nome.substr(i,1) == 'â' || nome.substr(i,1) == 'Â' || nome.substr(i,1) == 'ô' || nome.substr(i,1) == 'Ô' || 
            nome.substr(i,1) == 'ã' || nome.substr(i,1) == 'Ã' || nome.substr(i,1) == 'õ' || nome.substr(i,1) == 'Õ' || 
            nome.substr(i,1) == 'ç' || nome.substr(i,1) == 'Ç'){
            /*nothing to do*/
        }else{
            return false;
        }
    }
    
    return true;
}

function valida_nome_num(id){
    var nome = document.getElementById(id).value;
    
    if(nome.length == 0){
        return true;
    }
    
    for(i = 0; i < nome.length; i++){
        if(nome.charCodeAt(i) >= 48 && nome.charCodeAt(i) <= 58 || nome.charCodeAt(i) >= 65 && nome.charCodeAt(i) <= 90 || nome.charCodeAt(i) >= 97 && nome.charCodeAt(i) <= 122 || nome.substr(i,1) == ' ' || 
            nome.substr(i,1) == 'á' || nome.substr(i,1) == 'Á' || nome.substr(i,1) == 'é' || nome.substr(i,1) == 'É' || nome.substr(i,1) == 'í' || nome.substr(i,1) == 'Í' || nome.substr(i,1) == 'ó' || nome.substr(i,1) == 'Ó' || nome.substr(i,1) == 'ú' || nome.substr(i,1) == 'Ú' || 
            nome.substr(i,1) == 'â' || nome.substr(i,1) == 'Â' || nome.substr(i,1) == 'ô' || nome.substr(i,1) == 'Ô' || 
            nome.substr(i,1) == 'ã' || nome.substr(i,1) == 'Ã' || nome.substr(i,1) == 'õ' || nome.substr(i,1) == 'Õ' || 
            nome.substr(i,1) == 'ç' || nome.substr(i,1) == 'Ç'){
            /*nothing to do*/
        }else{
            return false;
        }
    }
    
    return true;
}

function valida_email(id){
    var email = document.getElementById(id).value;
    
    if(email.length == 0){
        return true;
    }
    
    var exclude=/[^@\-\.\w]|^[_@\.\-]|[\._\-]{2}|[@\.]{2}|(@)[^@]*\1/;
    var check=/@[\w\-]+\./;
    var checkend=/\.[a-zA-Z]{2,3}$/;
    
    if(((email.search(exclude) != -1)||(email.search(check)) == -1)||(email.search(checkend) == -1)){
        return false;
    }else{
        return true;
    }
}

function valida_endereco(id){
    var ende = document.getElementById(id).value;
    
    if(ende.length == 0){
        return true;
    }

    for(i = 0; i < ende.length; i++){
        if(ende.charCodeAt(i) >= 65 && ende.charCodeAt(i) <= 90 || ende.charCodeAt(i) >= 97 && ende.charCodeAt(i) <= 122 || ende.charCodeAt(i) >= 48 && ende.charCodeAt(i) <= 58 || ende.substr(i,1) == ' ' || ende.substr(i,1) == '-' || ende.substr(i,1) == '.' || ende.substr(i,1) == ',' || ende.substr(i,1) == 'º' || ende.substr(i,1) == 'ª' ||
            ende.substr(i,1) == 'á' || ende.substr(i,1) == 'Á' || ende.substr(i,1) == 'é' || ende.substr(i,1) == 'É' || ende.substr(i,1) == 'í' || ende.substr(i,1) == 'Í' || ende.substr(i,1) == 'ó' || ende.substr(i,1) == 'Ó' || ende.substr(i,1) == 'ú' || ende.substr(i,1) == 'Ú' || 
            ende.substr(i,1) == 'â' || ende.substr(i,1) == 'Â' || ende.substr(i,1) == 'ô' || ende.substr(i,1) == 'Ô' || ende.substr(i,1) == 'ã' || ende.substr(i,1) == 'Ã' || ende.substr(i,1) == 'õ' || ende.substr(i,1) == 'Õ' || ende.substr(i,1) == 'ç' || ende.substr(i,1) == 'Ç'){
            /*nothing to do*/
        }else{
            return false;
        }
    }
    
    return true;
}

function valida_numero(id){
    var num = document.getElementById(id).value;
    
    if(num.length == 0){
        return true;
    }
    
    for(i = 0; i < num.length; i++){
        if(num.charCodeAt(i) < 48 || num.charCodeAt(i) > 58){
            return false;
        }
    }
    
    return true;
}

function valida_real(id){
    var num = document.getElementById(id).value;
    
    if(num.length == 0){
        return true;
    }
    
    for(i = 0; i < num.length; i++){
        if(num.charCodeAt(i) < 48 || num.charCodeAt(i) > 58){
            if(num[i] != '.' && num[i] != ','){
                return false;
            }
        }
    }
    
    return true;
}

 function valida_data(id) {
	var date = document.getElementById(id).value;
        
        if(date.length == 0){
            return true;
        }
        
	var ardt=new Array;
	var ExpReg=new RegExp("(0[1-9]|[12][0-9]|3[01])/(0[1-9]|1[012])/[12][0-9]{3}");
	ardt=date.split("/");
	erro=false;
	if ( date.search(ExpReg)==-1){
		erro = true;
		}
	else if (((ardt[1]==4)||(ardt[1]==6)||(ardt[1]==9)||(ardt[1]==11))&&(ardt[0]>30))
		erro = true;
	else if ( ardt[1]==2) {
		if ((ardt[0]>28)&&((ardt[2]%4)!=0))
			erro = true;
		if ((ardt[0]>29)&&((ardt[2]%4)==0))
			erro = true;
	}
	if (erro) {
		return false;
	}
	return true;
}

function valida_cpf(id) {
    var cpf = document.getElementById(id).value;
    var Soma = 0;
    var Resto;
    cpf = cpf.replace(/\.|\-/g,'');
    
    if(cpf.length == 0){
        return true;
    }
    
    if (cpf.length != 11 || cpf == "00000000000" || cpf == "11111111111" || cpf == "22222222222" || cpf == "33333333333" || cpf == "44444444444" || cpf == "55555555555" || cpf == "66666666666" || cpf == "77777777777" || cpf == "88888888888" || cpf == "99999999999"){
        return false;
    }
    
    for (i=1; i<=9; i++){
        Soma = Soma + parseInt(cpf.substring(i-1, i)) * (11 - i);
    }
    Resto = (Soma * 10) % 11;
     
    if ((Resto == 10) || (Resto == 11)){
        Resto = 0;
    }
    if (Resto != parseInt(cpf.substring(9, 10)) ){
        return false;
    }
    
    Soma = 0;
    for (i = 1; i <= 10; i++){
        Soma = Soma + parseInt(cpf.substring(i-1, i)) * (12 - i);
    }
    Resto = (Soma * 10) % 11;
    
    if ((Resto == 10) || (Resto == 11)){
        Resto = 0;
    }
    if (Resto != parseInt(cpf.substring(10, 11) ) ){
        return false;
    }
    return true;
}

function valida_cnpj(id) {
    var cnpj = document.getElementById(id).value;
    cnpj = cnpj.replace(/[^\d]+/g,'');
 
    if(cnpj.length == 0){
        return true;
    }
     
    if (cnpj.length != 14){
        return false;
    }
 
    // Elimina CNPJs invalidos conhecidos
    if (cnpj == "00000000000000" ||
        cnpj == "11111111111111" ||
        cnpj == "22222222222222" ||
        cnpj == "33333333333333" ||
        cnpj == "44444444444444" ||
        cnpj == "55555555555555" ||
        cnpj == "66666666666666" ||
        cnpj == "77777777777777" ||
        cnpj == "88888888888888" ||
        cnpj == "99999999999999"){
        return false;
    }
         
    // Valida DVs
    var tamanho = cnpj.length - 2
    var numeros = cnpj.substring(0,tamanho);
    var digitos = cnpj.substring(tamanho);
    var soma = 0;
    var pos = tamanho - 7;
    for (var i = tamanho; i >= 1; i--) {
      soma += numeros.charAt(tamanho - i) * pos--;
      if (pos < 2){
          pos = 9;
      }
    }
    var resultado = soma % 11 < 2 ? 0 : 11 - soma % 11;
    if (resultado != digitos.charAt(0)){
        return false;
    }
         
    tamanho = tamanho + 1;
    numeros = cnpj.substring(0,tamanho);
    soma = 0;
    pos = tamanho - 7;
    for (i = tamanho; i >= 1; i--) {
      soma += numeros.charAt(tamanho - i) * pos--;
      if (pos < 2){
          pos = 9;
      }
    }
    resultado = soma % 11 < 2 ? 0 : 11 - soma % 11;
    if (resultado != digitos.charAt(1)){
        return false;
    }
    return true;
}

function valida_email(id){
    var email = document.getElementById(id).value;
    
    if(email.length == 0){
        return true;
    }
    
    var exclude=/[^@\-\.\w]|^[_@\.\-]|[\._\-]{2}|[@\.]{2}|(@)[^@]*\1/;
    var check=/@[\w\-]+\./;
    var checkend=/\.[a-zA-Z]{2,3}$/;
    
    if(((email.search(exclude) != -1)||(email.search(check)) == -1)||(email.search(checkend) == -1)){
        return false;
    }else{
        return true;
    }
}

function valida_email(id){
    var email = document.getElementById(id).value;
    
    if(email.length == 0){
        return true;
    }
    
    var exclude=/[^@\-\.\w]|^[_@\.\-]|[\._\-]{2}|[@\.]{2}|(@)[^@]*\1/;
    var check=/@[\w\-]+\./;
    var checkend=/\.[a-zA-Z]{2,3}$/;
    
    if(((email.search(exclude) != -1)||(email.search(check)) == -1)||(email.search(checkend) == -1)){
        return false;
    }else{
        return true;
    }
}

function valida(id){
    var v = true;
    var t = document.getElementById(id).value.length;
    switch(id){
        case "nome":
            if(t > 0){
                v = valida_nome(id);
            }else{
                v = false;
            }
        break;
        case "nome":
            if(t > 0){
                v = valida_nome_num(id);
            }else{
                v = false;
            }
        break;
        case "datanascimento":
            if(t > 0){
                v = valida_data(id);
            }else{
                v = false;
            }
        break;
        case "rg":
            /*v = valida_rg(id);*/
        break;
        case "cpf":
            if(t > 0){
                v = valida_cpf(id);
            }else{
                v = false;
            }
        break;
        case "rua":
            if(t > 0){
                v = valida_endereco(id);
            }else{
                v = false;
            }
        break;
        case "numero":
            v = valida_numero(id);
        break;
        case "bairro":
            v = valida_endereco(id);
        break;
        case "uf":
            if(document.getElementById(id).value != 0){
                v = valida_numero(id);
            }else{
                v = false;
            }
        break;
        case "ddd_tel":
            v = valida_numero(id);
        break;
        case "ddd_cel":
            v = valida_numero(id);
        break;
        
        case "celular":
            if(t > 0){
                v = valida_telefone(id);
            }else{
                v = false;
            }
            
            /*
        case "celular":
            v = valida_numero(id);
        break;*/
                                                        
        case "email":
            v = valida_email(id);
        break;
        
        case "endereco":
            if(t > 0){
                v = valida_endereco(id);
            }else{
                v = false;
            }
        break;
        case "endereco_marca":
            v = valida_endereco(id);
        break;
        case "revendedor":
            v = valida_nome(id);
        break;
        case "ddd":
            if(t > 0){
                v = valida_numero(id);
            }else{
                v = false;
            }
        break;
        case "cnpj":
            if(t > 0){
                v = valida_cnpj(id);
            }else{
                v = false;
            }
        break;
        
        case "cnpj_marca":
            if(t > 0){
                v = valida_cnpj(id);
            }else{
                v = true;
            }
        break;
        
        case "nomegrupo":
            if(t > 0){
                v = valida_nome(id);
            }else{
                v = false;
            }
        break;
        
        case "codbar":
            if(t > 0){
                v = valida_numero(id);
            }else{
                v = false;
            }
        break;
        case "quantidade":
            if(t > 0){
                v = valida_numero(id);
            }else{
                v = false;
            }
        break;
        case "minimo":
            v = valida_numero(id);
        break;
        case "marca":
            if(t > 0){
                v = valida_numero(id);
            }else{
                v = false;
            }
        break;
        case "grupo":
            if(t > 0){
                v = valida_numero(id);
            }else{
                v = false;
            }
        break;
        case "valorcusto":
            if(t > 0){
                v = valida_real(id);
            }else{
                v = false;
            }
        break;
        case "valorvenda":
            if(t > 0){
                v = valida_real(id);
            }else{
                v = false;
            }
        break;
        case "limitedesc":
            v = valida_real(id);
        break;
        case "datacompra":
            if(t > 0){
                v = valida_data(id);
            }else{
                v = false;
            }
        break;
        
        
        case "datavenc":
            v = valida_data(id);
            if (t = "00/00/000") {
                 v = true;
            }
        break;
        
        
        case "usuario":
            if(t > 0){
                v = valida_nome(id);
            }else{
                v = false;
            }
        break;
        case "senha":
            if(document.getElementById(id).value.length == 0){
                v = false;
            }else{
                v = true;
            }
        break;
        case "rsenha":
            if(document.getElementById("senha").value != document.getElementById(id).value){
                v = false;
            }else{
                v = true;
            }
        break;

        default :
            for(var i = 1; i <= 27; i++){
                if(id == "est_"+i){
                    if(document.getElementById(id).value != 0){
                        v = valida_numero(id);
                    }else{
                        v = false;
                    }
                }
            }
        break;
    }
    
    if(v == false){
        document.getElementById(id).style.borderColor = "#FF0000";
        document.getElementById(id).style.backgroundColor = "#FFCCCC"; 
    }else{
        document.getElementById(id).style.borderColor = ""; 
        document.getElementById(id).style.backgroundColor = "#FFF"; 
    }
    return v;
}

function valida_form(form){
    var e = false;
    switch(form){
        case "cad_cliente":
            if(!valida("nome")){ e = true; }
            if(!valida("datanascimento")){ e = true; }
            if(!valida("rg")){ e = true; }
            if(!valida("cpf")){ e = true; }
            if(!valida("rua")){ e = true; }
            if(!valida("numero")){ e = true; }
            if(!valida("bairro")){ e = true; }
            if(!valida("uf")){ e = true; }
            if(!valida("cep")){ e = true; }
            if(!valida("ddd_tel")){ e = true; }
            if(!valida("telefone")){ e = true; }
            if(!valida("ddd_cel")){ e = true; }
            if(!valida("celular")){ e = true; }
            if(!valida("email")){ e = true; }
        break;
        case "cad_marca":
            if(!valida("nome")){ e = true; }
            if(!valida("endereco_marca")){ e = true; }
            if(!valida("revendedor")){ e = true; }
            if(!valida("ddd_tel")){ e = true; }
            if(!valida("telefone")){ e = true; }
            if(!valida("cnpj_marca")){ e = true; }
        break;
        case "cad_grupo":
            if(!valida("nomegrupo")){ e = true; }
        break;
        case "cad_prod":
            if(!valida("codbar")){ e = true; }
            if(!valida("nomeprod")){ e = true; }
            if(!valida("quantidade")){ e = true; }
            if(!valida("minimo")){ e = true; }
            if(!valida("marca")){ e = true; }
            if(!valida("grupo")){ e = true; }
            if(!valida("valorcusto")){ e = true; }
            if(!valida("valorvenda")){ e = true; }
            if(!valida("limitedesc")){ e = true; }
            if(!valida("datacompra")){ e = true; }
            if(!valida("datavenc")){ e = true; }
        break;
        case "cad_usuario":
            if(!valida("usuario")){ e = true; }
            if(!valida("senha")){ e = true; }
            if(!valida("rsenha")){ e = true; }
            if(!valida("nome")){ e = true; }
        break;
        case "alt_senha":
            if(!valida("senha")){ e = true; }
            if(!valida("rsenha")){ e = true; }
        break;
    }
    
    if(e){
        alert("Preencha todos os campos corretamente");
        return false;
    }else{
        return true;
    }
}

function valida_asenha( v ){
    var id = "asenha";
    if(v == 2 && document.getElementById(id).value.length == 0){
        v = 1;
    }else if(v == 2){
        v = 0;
    }
    if(v == 1){
        document.getElementById(id).style.borderColor = "#FF0000";
        document.getElementById(id).style.backgroundColor = "#FFCCCC"; 
    }else{
        document.getElementById(id).style.borderColor = ""; 
        document.getElementById(id).style.backgroundColor = "#FFF"; 
    }
}

function valida_data_menor( e ){
    var elem = document.getElementById(e.id);
    
    var diad = elem.value.substring(0,2);
    var mesd = elem.value.substring(3,5);
    var anod = elem.value.substring(6,10);
    
    var h = new Date();
    var diah = h.getDate();
    var mesh = h.getMonth()+1;
    var anoh = h.getYear()+1900;
    
    if(mesh < 10){
        mesh = '0'+mesh;
    }
    
    var v = 0;
    
    if(anoh > anod){
        v = 1;
    }else if(anoh == anod){
        if(mesh > mesd){
            v = 1;
        }else if(mesh == mesd){
            if(diah > diad){
                v = 1;
            }
        }
    }
    
    if(v == 1){
        document.getElementById(elem.id).style.borderColor = "#FF0000";
        document.getElementById(elem.id).style.backgroundColor = "#FFCCCC"; 
    }else{
        document.getElementById(elem.id).style.borderColor = ""; 
        document.getElementById(elem.id).style.backgroundColor = "#FFF"; 
    }
    
    return false;
}
